import axios from 'axios';
import qs from 'qs';
import {commonInfo,utils} from './commonUtils';

/**
 * 请求JSON数据方法
 * axios二次封装，返回Promise对象，Url在commonUtils中定义
 * @param {*} entranceCode 接口编号
 * @param {*} data 数据
 */
const getJSONWithUrl = (url, data = {}) => {
    return new Promise((resolve, reject) => {
        axios({
            url: commonInfo.serverAddr+url,
            method: 'post',
            data:qs.stringify(data),
            headers:{
                'Content-Type':'application/x-www-form-urlencoded'
            }
        }).then(response => {
            //如请求状态为200(请求成功，且有状态码result)
            if(response.status===200&&response.data.result){
                switch(response.data.result){
                    case '0'://失败状态
                        reject(response.data.msg);
                        break;
                    case '1'://成功状态
                        if(response.data.data){
                            resolve(response.data.data);
                        }else{
                            reject('无返回数据');
                        }
                        break;
                    case '2'://账号不存在
                        utils.logoff();
                        reject('当前账号不存在');
                        break;
                    case '3'://账号异地登录
                        utils.logoff();
                        reject('您的账号已在其他设备登录');
                        break;
                    default:
                        reject('未知的返回值');
                }
            }else{
                reject('网络错误');
            }
        }).catch(()=>{
            reject('网络错误');
        })
    })
}
export default {
    getJSONWithUrl
}